Return-Oriented Programming (ROP) is a technique used by malicious agents to compromise a computing system in which code is non-writable and data is non-executable. In ROP, a stored return address is maliciously changed so that malicious code is executed upon the computing system performing a call-return rather than the original calling code continuing to be executed.